package com.z.system.service;

import com.z.system.model.Log;
import java.util.UUID;
import java.util.List;
import java.util.Date;

/**
 * 日志服务接口，定义日志相关的业务操作
 */
public interface LogService {

    /**
     * 保存日志（异步）
     */
    void saveAsync(Log log);

    /**
     * 根据ID查询日志
     */
    Log findById(UUID id);

    /**
     * 查询所有日志
     */
    List<Log> findAll();

    /**
     * 根据用户ID查询日志
     */
    List<Log> findByUserId(UUID userId);

    /**
     * 根据模块查询日志
     */
    List<Log> findByModule(String module);

    /**
     * 根据API路径查询日志
     */
    List<Log> findByApiPath(String apiPath);

    /**
     * 根据时间段查询日志
     */
    List<Log> findByCreateTimeBetween(Date startTime, Date endTime);

    /**
     * 根据状态码查询日志
     */
    List<Log> findByStatusCode(Integer statusCode);

    /**
     * 查询包含错误信息的日志
     */
    List<Log> findErrorLogs();

    /**
     * 删除日志
     */
    void delete(UUID id);

    /**
     * 批量删除日志
     */
    void deleteBatch(List<UUID> ids);

    /**
     * 清空日志
     */
    void clearAll();
}